package tec.stan.ling.topo.util;
/**
 * 
 * @author Stan
 * @since 2009.12.28
 */
public class ElementUtil {
	
//	public static Root load(IFile file) {
//		if (file.exists()) {
//			ResourceSet resourceSet = new ResourceSetImpl();
//
//			TopoResourceFactoryImpl playListFact = new TopoResourceFactoryImpl();
//
//			URI createURI = URI
//					.createURI(file.getFullPath().toPortableString());
//
//			resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
//					.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
//							playListFact);
//
//			resourceSet.getPackageRegistry().put(TopoPackage.eNS_URI,
//					TopoPackage.eINSTANCE);
//
//			Resource res = resourceSet.getResource(createURI, true);
//			return (Root) res.getContents().get(0);
//		} else {
//			return null;
//		}
//	}
//
//	public static void save(Root root, IFile file) throws Exception {
//		XMLResource resource = new XMLResourceImpl();
//		resource.setEncoding("UTF-8");
//		resource.getContents().add(root);
//
//		ByteArrayOutputStream out = new ByteArrayOutputStream();
//		resource.save(out, Collections.EMPTY_MAP);
//
//		ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
//		if (!file.exists()) {
//			file.create(in, true, null);
//		} else {
//			file.setContents(in, true, false, null);
//		}
//	}
//
//	public static Root createRoot() {
//		Root newObject = TopoFactory.eINSTANCE.createRoot();
//		newObject.setId(0);
//		newObject.setName("Topo");
//		return newObject;
//	}
//
//	public static Device createNetElement() {
//		return TopoFactory.eINSTANCE.createNetElement();
//	}
//
//	public static Subnet createSubnet() {
//		return TopoFactory.eINSTANCE.createSubnet();
//	}
//
//	public static Linker createLinker() {
//		return TopoFactory.eINSTANCE.createLinker();
//	}
//
//	public static void main(String[] args) {
//		Root root = createDemo();
//
//		XMLResource resource = new XMLResourceImpl();
//		resource.setEncoding("UTF-8");
//		resource.getContents().add(root);
//		try {
//			resource.save(System.out, Collections.EMPTY_MAP);
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//	}
//
//	public static Root createDemo() {
//		Root root = createRoot();
//		Subnet subnet1 = createSubnet();
//		subnet1.setId(1);
//		subnet1.setName("Subnet1");
//		root.getChildren().add(subnet1);
//
//		Device ne1 = createNetElement();
//		ne1.setId(11);
//		ne1.setName("ne1");
//		subnet1.getChildren().add(ne1);
//
//		Device ne2 = createNetElement();
//		ne2.setId(2);
//		ne2.setName("ne2");
//		root.getChildren().add(ne2);
//
//		Linker linker1 = createLinker();
//		linker1.setId(3);
//		linker1.setName("Linker1");
//		linker1.setLeftNE(ne1);
//		linker1.setRightNE(ne2);
//		root.getLinkers().add(linker1);
//		
//		return root;
//	}
}
